package controller

import (
	"illuminant/service"
	"illuminant/util"

	"github.com/gin-gonic/gin"
)

func GetTodos(c *gin.Context) {
	todos, err := service.GetTodos()
	if err != nil {
		util.Fail(c, util.DATA_SEARCH_ERROR, err.Error(), nil)
		return
	}

	util.Success(c, "", todos)
}

func CreateTodo(c *gin.Context) {
	var todo struct {
		Name     string `json:"name"`
		Finished int    `json:"finished"`
	}

	if err := c.BindJSON(&todo); err != nil {
		util.Fail(c, util.FAIL, err.Error(), nil)
		return
	}

	if err := service.CreateTodo(todo.Name, todo.Finished); err != nil {
		util.Fail(c, util.DATA_INSERT_ERROR, err.Error(), nil)
		return
	}

	util.Success(c, "", nil)
}

func DeleteTodo(c *gin.Context) {
	var todo struct {
		Id string `json:"id"`
	}

	if err := c.BindJSON(&todo); err != nil {
		util.Fail(c, util.FAIL, err.Error(), nil)
		return
	}

	if err := service.DeleteTodo(todo.Id); err != nil {
		util.Fail(c, util.DATA_DELETE_ERROR, err.Error(), nil)
		return
	}

	util.Success(c, "", nil)
}
